データ フィルタリング

設定することで、ウィンドウの別の場所で指定した情報に従って、ウィンドウのリストの内容を変えることができます。たとえば、リストにフィルタを設定し、選択されたユーザに関連付けられた CI のみをリストに表示できます。あるいは、カテゴリ リストにフィルタを設定し、各構成項目によって異なるカテゴリを使用できます。

後からデータ フィルタリングで使用できる新しいオブジェクト リンクを作成できます。詳細については、関連付けられていないビジネス オブジェクトの関連付けをご参照ください。

フィルタ ルールの作成

別のオブジェクトの値に基づいて、あるオブジェクトによって返される結果を制限するフィルタ ルールを定義できます。フィルタ ルールでフィルタ クエリを使用するか、ランタイム値を指定できます。

次の例では、[インシデント] ウィンドウで選択されたユーザに関連付けられている構成項目のみを表示する方法について説明します。[インシデント] ウィンドウに表示される CI を制限するため、フィルタ ルールは「インシデント」オブジェクトの「構成項目」属性に基づきます。

フィルタ ルールを作成するには:
  1. オブジェクト デザイナー コンポーネントを起動し、フィルタを設定するビジネス オブジェクトに移動します。
    この例では、「インシデント管理 | インシデント」です。
  2. [属性] リストで、フィルタを追加する属性を選択します。
    この例では、[構成項目] です。
  3. [プロパティ] グリッドの [フィルタ セレクタ] プロパティの横で、 をクリックします。
    [属性フィルタ セレクタ] ダイアログが表示されます。
  4. [新しいフィルタ ルール] をクリックします。
    [属性フィルタ セレクタ] ダイアログが表示されます。

    目的の値のみを選択する条件を含むフィルタ クエリを使用するか、値を別の場所で指定された値に設定するランタイム値を使用して、フィルタ ルールによって返されるレコードを制限できます。たとえば、ランタイム値を使用すると、割り当てのグループ フィールドが、インシデントを登録したアナリストのプライマリ グループと一致するように設定できます。

ランタイム値の使用方法の詳細については、ランタイム値を使用したデータ フィルタリングをご参照ください。

この例では、インシデントの提出者に関連付けられた CI のみを選択するフィルタ クエリを使用します。

  1. [フィルタ クエリを選択] オプション ボタンをクリックし、[リスト] の [新規] をクリックします。
    [新しいフィルタ] ダイアログが表示されます。

既に適切なフィルタ クエリがある場合は、リストで選択できます。

フィルタ クエリの作成の詳細については、フィルタをご参照ください。

  1. フィルタのタイトルを入力します。

[基準] グループと [フィルタ項目] グループの両方のモジュールとビジネス オブジェクトが既に定義されています。「基準」オブジェクトは、フィルタ セレクタを設定している属性 (この例では、「構成管理\構成項目」) の関連オブジェクトです。「フィルタ項目」オブジェクトは、フィルタ セレクタの基準となるオブジェクト (この例では、「インシデント管理\インシデント」) です。つまり、条件をフィルタ クエリに追加すると、構成項目の属性とインシデントの属性が照合されます。

  1. [全員] オプション ボタンを選択して、[OK] をクリックします。
    [フィルタ ビルダ] が表示されます。
  2. [タイトル] を [属性] ツリーから [選択された属性] リストにドラッグします。

また、ウィンドウ設計の複雑なリストで使用する属性を追加することもできます (複雑なリストの詳細については、複雑なリストをご参照ください)。

  1. 必要な属性を追加したら、[次へ] をクリックします。
    [条件] ページが表示されます。ここでは、返される結果を制限する条件を設定します。

インシデントの提出者に関連付けられた CI を選択するランタイム値を指定します。CI とユーザは多対多の関係です。ユーザは複数の CI (コンピュータ、モニタ、プリンタなど) をもつことができ、CI は複数のユーザに関連付けられます (ネットワーク プリンタなど)。このため、「構成項目」オブジェクトには、「ユーザ構成項目」コレクションがあります。このコレクションの「ユーザ」属性にフィルタを設定します。

つまり、「User Configuration Items.User Is Equal To (Raise User)」条件を設定します。

  1. フィルタの基準となる属性を、[属性] ツリーから [現在の条件] リストにドラッグします。
    この例では、[ユーザ構成項目] コレクションを展開し、[ユーザ] を [現在の条件] リストにドラッグします。
    [条件] ダイアログが表示されます。[属性] フィールドには「User Configuration Items.User」が入力されています。
  2. [条件] リストで [等しい] を選択します。

条件の絶対値またはランタイム値を指定する他に、「現在のユーザ」など、それ自体で基準を設定する条件を選択できます。この例で [現在のユーザ] を選択すると、現在のユーザに関連付けられたすべての CI が表示されますが、すべての CI を表示したくはありません。必要なのは、インシデントを登録したユーザである「提出者」に関連付けられた CI のみです。このためには、条件のランタイム値を設定する必要があります。

  1. [ランタイム値を指定する] オプション ボタンを選択します。
    別のコントロールが [条件] ダイアログに追加されます。
  2. ツリーで、[提出者] を選択し、[OK] をクリックします。
    [User Configuration Items.User Is Equal To (Raise User)] が [現在の条件] リストに追加されます。
  3. [フィルタ ビルダ] ウィンドウで、[完了] をクリックし、[はい] をクリックして変更を保存します。
    [フィルタ ビルダ] が閉じ、[属性フィルタ セレクタ] ダイアログに新しいフィルタが含まれます。
  4. すべてのクライアントにフィルタを適用するには、[クライアント タイプを選択] グループ ボックスで [すべて] を選択します。Web Desk など、Web Access で提供されるアプリケーションに対してのみフィルタを適用する場合は、[Web Access] を選択します。[OK] をクリックします。
    [フィルタ ルール] リストにフィルタが表示されます。[タイプ][クエリ] に設定されます。
  5. [OK] をクリックします。
    フィルタ ルールが属性に追加されます。
  6. をクリックして、オブジェクトの変更を保存します。

既存のフィルタ ルールを修正するには、[フィルタ ルール] リストで [修正] をクリックします。

別のフィルタ ルールを作成し、インシデントで選択された CI タイプに含まれる CI のみを選択できます。CI のクラス タイプと、ランタイム値などのインシデントで選択された構成項目タイプを照合します。
つまり:AND Class Type Is Equal To (ConfigurationItemType)

可能な限り、別のビジネス オブジェクトから継承されたぞkすえいではなく、関連するビジネス オブジェクト固有の属性にフィルタを設定します。継承されたビジネス オブジェクトにフィルタを作成する必要がある場合 (フィルタリングされる属性が継承されたビジネス オブジェクトにのみ存在する場合)、フィルタ ルールを作成するときには、固有のタイプのビジネス オブジェクトにのみ適用される追加の条件が必要です。
たとえば、「インシデント」ビジネス オブジェクトで、プロセス/提出者の属性フィルタは、[インシデント] ウィンドウで選択された顧客によってユーザを絞り込む必要があるとします。これは、インシデントでは正しく動作します。ただし、「変更」ビジネス オブジェクトの提出者を選択することはできません。「提出者」属性は「プロセス」ビジネス オブジェクトから継承されるため、常に「インシデント/顧客」によるフィルタを適用しようとします。この例を使用すると、「プロセス/提出者」属性ではこのフィルタを定義できません。顧客は「プロセス」ビジネス オブジェクトに含まれず、「インシデント」ビジネス オブジェクトに固有であるためです。したがって、フィルタは「インシデント/提出者」に適用されなければなりませんが、他のビジネス オブジェクトに適用することはできません。これを実現するには、ビジネス オブジェクトがインシデントの場合にのみ、フィルタを適用するフィルタ条件を追加します。